home *** CD-ROM | disk | FTP | other *** search
/ Kellogg's Amérique / Kellogg's Amérique / decouverte_amerique.swf / scripts / amerique / Decouverte_amerique.as
Text File  |  2020-08-04  |  18KB  |  513 lines

  1. package amerique
  2. {
  3.    import caurina.transitions.Tweener;
  4.    import flash.display.MovieClip;
  5.    import flash.events.Event;
  6.    import flash.events.KeyboardEvent;
  7.    import flash.events.MouseEvent;
  8.    import flash.events.TimerEvent;
  9.    import flash.ui.Keyboard;
  10.    import flash.utils.Timer;
  11.    import flash.utils.getQualifiedClassName;
  12.    import jeux.Jeu;
  13.    
  14.    public class Decouverte_amerique extends Jeu
  15.    {
  16.        
  17.       
  18.       public var page_accueil:MovieClip;
  19.       
  20.       private var destinationX:Number = 339.5;
  21.       
  22.       private const DUREE_PARTIE:Number = 1125.0;
  23.       
  24.       public var chargement:MovieClip;
  25.       
  26.       private var direction_droite:Boolean;
  27.       
  28.       private var bonneReponse:Boolean;
  29.       
  30.       public var fond:MovieClip;
  31.       
  32.       private var quit:Boolean = false;
  33.       
  34.       private const NOMBRE_MAX_VIES:Number = 3;
  35.       
  36.       private var reponse:Number;
  37.       
  38.       private var direction_gauche:Boolean;
  39.       
  40.       private const ARGENT_DEPART:Number = 10;
  41.       
  42.       private const NOMBRE_OBSTACLES:Number = 1;
  43.       
  44.       var displayPersos:Array;
  45.       
  46.       public var page_resultat:MovieClip;
  47.       
  48.       private var bonChemin:Number;
  49.       
  50.       private var argent:Number;
  51.       
  52.       public var page_jeu:MovieClip;
  53.       
  54.       private const POSITION_MIN_X:Number = -381.7;
  55.       
  56.       public var titre:MovieClip;
  57.       
  58.       private const INTERVALES_APPARITION_OBSTACLES:Number = 75;
  59.       
  60.       private var temps:Number;
  61.       
  62.       private var collision:Boolean = true;
  63.       
  64.       private var gagne:Boolean;
  65.       
  66.       private var vitesseX:Number = 8;
  67.       
  68.       private const POSITION_MAX_X:Number = 504.5;
  69.       
  70.       private var chemin:Number;
  71.       
  72.       private var vitesseObstacles:Number = 10;
  73.       
  74.       const COEF_SCORE:Number = 0.01;
  75.       
  76.       private var nbCollision:Number;
  77.       
  78.       private var question:Number;
  79.       
  80.       private var obstacles:Array;
  81.       
  82.       public function Decouverte_amerique()
  83.       {
  84.          var _loc1_:Number = NaN;
  85.          quit = false;
  86.          obstacles = new Array();
  87.          destinationX = 339.5;
  88.          vitesseX = 8;
  89.          displayPersos = new Array();
  90.          vitesseObstacles = 10;
  91.          collision = true;
  92.          super();
  93.          pages = [chargement,page_accueil,page_jeu,page_resultat];
  94.          hide_all_but(page_accueil);
  95.          page_accueil.btn_jouer.addEventListener(MouseEvent.CLICK,clic_bouton);
  96.          page_resultat.btn_jouer.addEventListener(MouseEvent.CLICK,clic_bouton);
  97.          _loc1_ = 1;
  98.          while(_loc1_ <= 10)
  99.          {
  100.             this.page_jeu["question_" + _loc1_].btBonne.addEventListener(MouseEvent.CLICK,bouton_bonne_reponse);
  101.             this.page_jeu["question_" + _loc1_].btMauvaise1.addEventListener(MouseEvent.CLICK,bouton_mauvaise_reponse);
  102.             this.page_jeu["question_" + _loc1_].btMauvaise2.addEventListener(MouseEvent.CLICK,bouton_mauvaise_reponse);
  103.             _loc1_++;
  104.          }
  105.          this.page_jeu.btContinuer.btBonne.addEventListener(MouseEvent.CLICK,reprendre_jeu);
  106.          this.page_jeu.btContinuer.btBonne.buttonMode = true;
  107.          this.page_jeu.btTerminer.btBonne.addEventListener(MouseEvent.CLICK,finjeu);
  108.          this.page_jeu.btTerminer.btBonne.buttonMode = true;
  109.       }
  110.       
  111.       private function afficher_choix_chemin() : void
  112.       {
  113.          var _loc1_:Number = NaN;
  114.          var _loc2_:Timer = null;
  115.          this.page_jeu.choix_depart.visible = true;
  116.          this.page_jeu.choix_depart.perso.visible = true;
  117.          this.page_jeu.choix_depart.gotoAndPlay(1);
  118.          page_jeu.chemin_1.visible = false;
  119.          page_jeu.chemin_2.visible = false;
  120.          page_jeu.chemin_3.visible = false;
  121.          page_jeu.chemin_1.gotoAndStop(1);
  122.          page_jeu.chemin_2.gotoAndStop(1);
  123.          page_jeu.chemin_3.gotoAndStop(1);
  124.          _loc1_ = 1;
  125.          while(_loc1_ <= 3)
  126.          {
  127.             page_jeu["mauvaiseReponse_" + _loc1_].visible = false;
  128.             page_jeu["bonneReponse_" + _loc1_].visible = false;
  129.             _loc1_++;
  130.          }
  131.          bonChemin = Math.floor(Math.random() * 3 + 1);
  132.          _loc1_ = 1;
  133.          while(_loc1_ <= 3)
  134.          {
  135.             if(_loc1_ == bonChemin)
  136.             {
  137.                page_jeu.choix_depart["chemin_" + _loc1_].alpha = 1;
  138.                page_jeu.choix_depart["chemin_" + _loc1_].visible = true;
  139.             }
  140.             else
  141.             {
  142.                page_jeu.choix_depart["chemin_" + _loc1_].alpha = 0;
  143.                page_jeu.choix_depart["chemin_" + _loc1_].visible = false;
  144.             }
  145.             this.page_jeu.choix_depart["btChoix_" + _loc1_].visible = false;
  146.             this.page_jeu.choix_depart["bonneReponse_" + _loc1_].visible = false;
  147.             this.page_jeu.choix_depart["mauvaiseReponse_" + _loc1_].visible = false;
  148.             _loc1_++;
  149.          }
  150.          _loc1_ = 1;
  151.          while(_loc1_ <= 3)
  152.          {
  153.             this.page_jeu.choix_depart["btChoix_" + _loc1_].addEventListener(MouseEvent.CLICK,bouton_choisir_chemin);
  154.             this.page_jeu.choix_depart["btChoix_" + _loc1_].addEventListener(MouseEvent.MOUSE_OVER,bouton_afficher_chemin);
  155.             this.page_jeu.choix_depart["btChoix_" + _loc1_].addEventListener(MouseEvent.MOUSE_OUT,bouton_afficher_chemin);
  156.             this.page_jeu.choix_depart["btChoix_" + _loc1_].buttonMode = true;
  157.             _loc1_++;
  158.          }
  159.          this.page_jeu.choix_depart.explications.gotoAndStop(1);
  160.          _loc2_ = new Timer(4500,1);
  161.          _loc2_.addEventListener("timer",afficher_choix_chemin_boutons);
  162.          _loc2_.start();
  163.       }
  164.       
  165.       private function demarrer(param1:TimerEvent) : *
  166.       {
  167.          this.page_jeu.choix_depart.visible = false;
  168.          afficher_question();
  169.          addEventListener(Event.ENTER_FRAME,actualiser);
  170.       }
  171.       
  172.       private function bouton_afficher_chemin(param1:MouseEvent) : void
  173.       {
  174.          var _loc2_:Number = NaN;
  175.          _loc2_ = param1.currentTarget.name.substr(param1.currentTarget.name.indexOf("_") + 1,param1.currentTarget.name.length - param1.currentTarget.name.indexOf("_") + 1);
  176.          switch(param1.type)
  177.          {
  178.             case MouseEvent.MOUSE_OVER:
  179.                page_jeu.choix_depart["chemin_" + _loc2_].visible = true;
  180.                page_jeu.choix_depart["chemin_" + _loc2_].alpha = 1;
  181.                break;
  182.             case MouseEvent.MOUSE_OUT:
  183.                page_jeu.choix_depart["chemin_" + _loc2_].visible = false;
  184.                page_jeu.choix_depart["chemin_" + _loc2_].alpha = 0;
  185.          }
  186.       }
  187.       
  188.       private function keyDownHandler(param1:KeyboardEvent) : void
  189.       {
  190.          switch(param1.keyCode)
  191.          {
  192.             case Keyboard.LEFT:
  193.                direction_gauche = true;
  194.                break;
  195.             case Keyboard.RIGHT:
  196.                direction_droite = true;
  197.          }
  198.       }
  199.       
  200.       override public function toString() : String
  201.       {
  202.          return "Jeu " + getQualifiedClassName(this);
  203.       }
  204.       
  205.       override public function jouer() : *
  206.       {
  207.          trace("jouer");
  208.          hide_all_but(page_jeu);
  209.          fond.visible = false;
  210.          quit = false;
  211.          temps = 0;
  212.          page_jeu.score.score = 0;
  213.          collision = true;
  214.          nbCollision = 0;
  215.          gagne = false;
  216.          question = 0;
  217.          reponse = 0;
  218.          effacer_questions();
  219.          effacer_reponse();
  220.          page_jeu.btContinuer.visible = false;
  221.          page_jeu.btTerminer.visible = false;
  222.          argent = ARGENT_DEPART;
  223.          page_jeu.argent.texte.text = argent;
  224.          stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
  225.          stage.addEventListener(KeyboardEvent.KEY_UP,keyUpHandler);
  226.          afficher_choix_chemin();
  227.       }
  228.       
  229.       private function afficher_reponse2(param1:TimerEvent = null) : *
  230.       {
  231.          if(reponse != 0)
  232.          {
  233.             reprendre_jeu();
  234.             if(question >= 10)
  235.             {
  236.                finjeu();
  237.             }
  238.             else if(argent == 0)
  239.             {
  240.                finjeu();
  241.             }
  242.          }
  243.       }
  244.       
  245.       private function keyUpHandler(param1:KeyboardEvent) : void
  246.       {
  247.          switch(param1.keyCode)
  248.          {
  249.             case Keyboard.LEFT:
  250.                direction_gauche = false;
  251.                break;
  252.             case Keyboard.RIGHT:
  253.                direction_droite = false;
  254.          }
  255.       }
  256.       
  257.       private function effacer_questions() : void
  258.       {
  259.          var _loc1_:Number = NaN;
  260.          _loc1_ = 1;
  261.          while(_loc1_ <= 10)
  262.          {
  263.             this.page_jeu["question_" + _loc1_].visible = false;
  264.             _loc1_++;
  265.          }
  266.          page_jeu.bonneReponse_1.visible = false;
  267.          page_jeu.mauvaiseReponse_1.visible = false;
  268.       }
  269.       
  270.       public function finjeu(param1:* = null) : void
  271.       {
  272.          if(!quit)
  273.          {
  274.             trace("finjeu");
  275.             hide_all_but(page_resultat);
  276.             page_resultat.bulle_fin.bravo1.visible = false;
  277.             page_resultat.bulle_fin.bravo.visible = false;
  278.             page_resultat.bulle_fin.dommage.visible = false;
  279.             if(page_jeu.score.score >= 8)
  280.             {
  281.                page_resultat.bulle_fin.bravo1.visible = true;
  282.                page_resultat.bulle_fin.bravo1.points.text = page_jeu.score.score;
  283.                jouer_son_victoire();
  284.             }
  285.             else if(page_jeu.score.score > 4)
  286.             {
  287.                page_resultat.bulle_fin.bravo.visible = true;
  288.                page_resultat.bulle_fin.bravo.points.text = page_jeu.score.score;
  289.                jouer_son_victoire();
  290.             }
  291.             else
  292.             {
  293.                page_resultat.bulle_fin.dommage.visible = true;
  294.                page_resultat.bulle_fin.dommage.points.text = page_jeu.score.score;
  295.                if(page_jeu.score.score >= 2)
  296.                {
  297.                   page_resultat.bulle_fin.dommage.textePoints.text = "points,";
  298.                }
  299.                else
  300.                {
  301.                   page_resultat.bulle_fin.dommage.textePoints.text = "point,";
  302.                }
  303.                jouer_son_defaite();
  304.             }
  305.             if(fin != null)
  306.             {
  307.                fin(page_jeu.score.score);
  308.             }
  309.             fond.visible = true;
  310.             quitter();
  311.          }
  312.       }
  313.       
  314.       private function bouton_mauvaise_reponse(param1:MouseEvent) : void
  315.       {
  316.          var _loc2_:Timer = null;
  317.          param1.currentTarget.mouseEnabled = false;
  318.          param1.currentTarget.buttonMode = false;
  319.          bonneReponse = false;
  320.          argent = argent - 1;
  321.          page_jeu.argent.texte.text = argent;
  322.          if(argent == 0)
  323.          {
  324.             page_jeu["question_" + question].btBonne.mouseEnabled = false;
  325.             page_jeu["question_" + question].btMauvaise1.mouseEnabled = false;
  326.             page_jeu["question_" + question].btMauvaise2.mouseEnabled = false;
  327.             page_jeu["question_" + question].btBonne.buttonMode = false;
  328.             page_jeu["question_" + question].btMauvaise1.buttonMode = false;
  329.             page_jeu["question_" + question].btMauvaise2.buttonMode = false;
  330.             _loc2_ = new Timer(2000,1);
  331.             _loc2_.addEventListener("timer",finjeu);
  332.             _loc2_.start();
  333.          }
  334.          page_jeu.mauvaiseReponse_1.x = param1.currentTarget.x + param1.currentTarget.parent.x + param1.currentTarget.width;
  335.          page_jeu.mauvaiseReponse_1.y = param1.currentTarget.y + param1.currentTarget.parent.y + 8;
  336.          page_jeu.mauvaiseReponse_1.visible = true;
  337.       }
  338.       
  339.       private function afficher_reponse(param1:Number = 0) : *
  340.       {
  341.          var _loc2_:Number = NaN;
  342.          reponse = param1;
  343.          _loc2_ = 1;
  344.          while(_loc2_ <= 10)
  345.          {
  346.             this.page_jeu["reponse_" + _loc2_].visible = _loc2_ == reponse;
  347.             _loc2_++;
  348.          }
  349.          if(question >= 10)
  350.          {
  351.          }
  352.       }
  353.       
  354.       private function bouton_choisir_chemin(param1:MouseEvent) : void
  355.       {
  356.          var _loc2_:Number = NaN;
  357.          var _loc3_:Number = NaN;
  358.          var _loc4_:Timer = null;
  359.          _loc2_ = param1.currentTarget.name.substr(param1.currentTarget.name.indexOf("_") + 1,param1.currentTarget.name.length - param1.currentTarget.name.indexOf("_") + 1);
  360.          chemin = _loc2_;
  361.          this.page_jeu.choix_depart.perso.visible = false;
  362.          page_jeu["chemin_" + chemin].visible = true;
  363.          if(bonChemin == _loc2_)
  364.          {
  365.             this.page_jeu.choix_depart.explications.gotoAndStop(3);
  366.             this.page_jeu.choix_depart["bonneReponse_" + _loc2_].visible = true;
  367.             argent += 2;
  368.             page_jeu.argent.texte.text = argent;
  369.          }
  370.          else
  371.          {
  372.             this.page_jeu.choix_depart.explications.gotoAndStop(4);
  373.             this.page_jeu.choix_depart["mauvaiseReponse_" + _loc2_].visible = true;
  374.             argent -= 2;
  375.             page_jeu.argent.texte.text = argent;
  376.          }
  377.          _loc3_ = 1;
  378.          while(_loc3_ <= 3)
  379.          {
  380.             this.page_jeu.choix_depart["btChoix_" + _loc3_].removeEventListener(MouseEvent.CLICK,bouton_choisir_chemin);
  381.             this.page_jeu.choix_depart["btChoix_" + _loc3_].removeEventListener(MouseEvent.MOUSE_OVER,bouton_afficher_chemin);
  382.             this.page_jeu.choix_depart["btChoix_" + _loc3_].removeEventListener(MouseEvent.MOUSE_OUT,bouton_afficher_chemin);
  383.             this.page_jeu.choix_depart["btChoix_" + _loc3_].buttonMode = false;
  384.             _loc3_++;
  385.          }
  386.          (_loc4_ = new Timer(2000,1)).addEventListener("timer",demarrer);
  387.          _loc4_.start();
  388.       }
  389.       
  390.       private function afficher_choix_chemin_boutons(param1:TimerEvent) : *
  391.       {
  392.          var _loc2_:Number = NaN;
  393.          _loc2_ = 1;
  394.          while(_loc2_ <= 3)
  395.          {
  396.             Tweener.addTween(page_jeu.choix_depart["chemin_" + _loc2_],{
  397.                "alpha":0,
  398.                "time":1,
  399.                "transition":"linear",
  400.                "onComplete":afficher_choix_chemin_boutons2
  401.             });
  402.             _loc2_++;
  403.          }
  404.       }
  405.       
  406.       public function afficher_question() : void
  407.       {
  408.          var _loc1_:Number = NaN;
  409.          bonneReponse = true;
  410.          page_jeu["chemin_" + chemin].stop();
  411.          ++question;
  412.          _loc1_ = 1;
  413.          while(_loc1_ <= 10)
  414.          {
  415.             if(_loc1_ == question)
  416.             {
  417.                page_jeu["question_" + _loc1_].visible = true;
  418.                page_jeu["question_" + _loc1_].btBonne.mouseEnabled = true;
  419.                page_jeu["question_" + _loc1_].btMauvaise1.mouseEnabled = true;
  420.                page_jeu["question_" + _loc1_].btMauvaise2.mouseEnabled = true;
  421.                page_jeu["question_" + _loc1_].btBonne.buttonMode = true;
  422.                page_jeu["question_" + _loc1_].btMauvaise1.buttonMode = true;
  423.                page_jeu["question_" + _loc1_].btMauvaise2.buttonMode = true;
  424.             }
  425.             else
  426.             {
  427.                page_jeu["question_" + _loc1_].visible = false;
  428.             }
  429.             _loc1_++;
  430.          }
  431.       }
  432.       
  433.       private function effacer_reponse(param1:TimerEvent = null) : *
  434.       {
  435.          var _loc2_:Number = NaN;
  436.          _loc2_ = 1;
  437.          while(_loc2_ <= 10)
  438.          {
  439.             this.page_jeu["reponse_" + _loc2_].visible = false;
  440.             _loc2_++;
  441.          }
  442.       }
  443.       
  444.       private function reprendre_jeu(param1:MouseEvent = null) : void
  445.       {
  446.          effacer_questions();
  447.          effacer_reponse();
  448.          page_jeu.btContinuer.visible = false;
  449.          page_jeu.btTerminer.visible = false;
  450.          page_jeu["chemin_" + chemin].play();
  451.       }
  452.       
  453.       override public function quitter() : *
  454.       {
  455.          removeEventListener(Event.ENTER_FRAME,actualiser);
  456.          quit = true;
  457.       }
  458.       
  459.       private function bouton_bonne_reponse(param1:MouseEvent) : void
  460.       {
  461.          page_jeu["question_" + question].btBonne.mouseEnabled = false;
  462.          page_jeu["question_" + question].btMauvaise1.mouseEnabled = false;
  463.          page_jeu["question_" + question].btMauvaise2.mouseEnabled = false;
  464.          page_jeu["question_" + question].btBonne.buttonMode = false;
  465.          page_jeu["question_" + question].btMauvaise1.buttonMode = false;
  466.          page_jeu["question_" + question].btMauvaise2.buttonMode = false;
  467.          if(bonneReponse)
  468.          {
  469.             page_jeu.score.score += 1;
  470.          }
  471.          afficher_reponse(question);
  472.          page_jeu.bonneReponse_1.x = param1.currentTarget.x + param1.currentTarget.parent.x + param1.currentTarget.width;
  473.          page_jeu.bonneReponse_1.y = param1.currentTarget.y + param1.currentTarget.parent.y;
  474.          page_jeu.bonneReponse_1.visible = true;
  475.          if(question < 10)
  476.          {
  477.             page_jeu.btContinuer.visible = true;
  478.          }
  479.          else
  480.          {
  481.             page_jeu.btTerminer.visible = true;
  482.          }
  483.       }
  484.       
  485.       private function actualiser(param1:Event) : void
  486.       {
  487.          var _loc2_:Number = NaN;
  488.          var _loc3_:String = null;
  489.          _loc3_ = page_jeu["chemin_" + chemin].currentLabel;
  490.          if(_loc3_ != null)
  491.          {
  492.             _loc2_ = Number(_loc3_.substr(_loc3_.indexOf("_") + 1,_loc3_.length - _loc3_.indexOf("_") + 1));
  493.             if(_loc2_ > question)
  494.             {
  495.                afficher_question();
  496.             }
  497.          }
  498.       }
  499.       
  500.       private function afficher_choix_chemin_boutons2() : *
  501.       {
  502.          var _loc1_:Number = NaN;
  503.          this.page_jeu.choix_depart.explications.gotoAndStop(2);
  504.          _loc1_ = 1;
  505.          while(_loc1_ <= 3)
  506.          {
  507.             this.page_jeu.choix_depart["btChoix_" + _loc1_].visible = true;
  508.             _loc1_++;
  509.          }
  510.       }
  511.    }
  512. }
  513.